#include <iostream>

// void Swap(int *a,int *b)
// {
//     int temp = *a;
//     *a = *b;
//     *b = temp;
// }

void Swap(int &a,int &b)
{
    int temp = a;
    a = b;
    b = temp;
}

//接收引用变量
void Show(const int& a)
{
    std::cout<<a<<std::endl;
}

int main()
{
    int b = 10;
    int c = 20;
    //1、不能单独进行定义（初始化）
    //2、没有多级引用
    //3、引用在定义时就确定，不会再改变
    // int&a = b;
    // int&c = a;

    // int &a = b;
    // std::cout<<a<<std::endl;
    // a = c;
    // std::cout<<a<<std::endl;

    Swap(b,c);
    std::cout<<b<<std::endl;
    std::cout<<c<<std::endl;
    //接收
    Show(10);

    //常量指针：b的内存值不可改变
    const int *a = &b;
    //指针常量:指向b的内存，不可改变指向
    int* const p = &b;
    return 0;
}